package JunitDemo;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2023-04-09
 * Time: 10:10
 */

// Junit 是 Java 的单元集成测试工具
public class JunitDemo1 {
    // Junit 提供的注解功能
    // @Test -- 表示该方法为测试方法
    // @BeforeEach -- 同一个类中, 在执行每一个 @Test 之前 都会先执行一次 @BeforeEach注释
    // @BeforeAll -- 必须是静态方法才可以用该注解, 且只会在所有用例执行前 首先执行一次
    // @AfterEach -- 同一个类中, 在执行每一个 @Test 之后 都会先执行一次 @BeforeEach注释
    // @AfterAll -- 必须是静态方法才可以用该注解, 且只会在所有用例 执行后执行一次

    @AfterEach
    public void annotate() {
        // 未使用@Test之前, 必须要有 main 才可以执行
        System.out.println("这是一个 Test 注解");
    }

    // @Test 静态字段或方法不能被 @Test 注解修饰
//    static {
//        System.out.println("这也是一个 Test 注释");
//    }
    @Test
    public void annotate1() {
        // 注意为同一个 类中的 所有被 @Test 修饰的方法
        // @Test 注解执行时, 会执行该类中 每一个被 @Test 注释的方法
        System.out.println("这是第 1 个 Test 注解");
    }

    @Test
    public void annotated3() {
        System.out.println(" 这是第 3 个 Test注释");
    }

    @BeforeAll
    public static void annotate2() {
        // 此处加了 @Test 但并不可以执行
        System.out.println("这是第 2 个 静态方法 Test 注释的");
    }
}
